2026-10-18T12:09:16.5430226Z ##[group]Run node --test plugins/claude-code/test/hooks.test.mjs
2026-10-18T12:09:16.5430323Z [36;1mnode --test plugins/claude-code/test/hooks.test.mjs[0m
2026-10-18T12:09:16.5430341Z shell: /usr/bin/bash -e {0}
2026-10-18T12:09:16.5430359Z env:
2026-10-18T12:09:16.5430368Z   CARGO_TERM_COLOR: never
2026-10-18T12:09:16.5430378Z   WRANGLER_SEND_METRICS: false
2026-10-18T12:09:16.5430388Z ##[endgroup]
2026-10-18T12:09:22.2181322Z ▶ plan
2026-10-18T12:09:22.3731905Z   ✔ SessionStart starts the session (2.677697ms)
2026-10-18T12:09:22.3732111Z   ✔ UserPromptSubmit logs the prompt, cut to the limit (13.331724ms)
2026-10-18T12:09:22.3732195Z   ✔ a turn Claude Code starts itself for a background task is not a prompt (0.344387ms)
2026-10-18T12:09:22.3732319Z   ✔ UserPromptSubmit sends no title: g1t names the session from what it records (1.380421ms)
2026-10-18T12:09:22.3732401Z   ✔ G1T_RECORD_PROMPTS=0 keeps prompts back, and G1T_RECORD=0 everything (0.354582ms)
2026-10-18T12:09:22.3732480Z   ✔ PostToolUse sends the tool and its input's summary, never its response (1.727532ms)
2026-10-18T12:09:22.3732539Z   ✔ PostToolUse after a git push updates the head commit (0.700741ms)
2026-10-18T12:09:22.3732593Z   ✔ PostToolUse remembers the work item a command claims (0.275543ms)
2026-10-18T12:09:22.3732677Z   ✔ Stop sends a heartbeat with the transcript's usage, and SessionEnd reports it and ends the session with its reason (0.497898ms)
2026-10-18T12:09:22.3732747Z   ✔ events without a session, and other events, do nothing (0.303064ms)
2026-10-18T12:09:22.3732761Z ✔ plan (23.842784ms)
2026-10-18T12:09:22.3732775Z ▶ subagents
2026-10-18T12:09:22.3732830Z   ✔ SubagentStart starts a session of its own for the subagent (1.053641ms)
2026-10-18T12:09:22.3732895Z   ✔ SubagentStop reports its own transcript's usage and ends it with its final message, cut to the limit (441.447461ms)
2026-10-18T12:09:22.3732957Z   ✔ an Agent call gives its subagent the task, and once finished its final message, and nothing else of its answer (0.639009ms)
2026-10-18T12:09:22.3733704Z   ✔ what a subagent does is its own session's, and the files it writes are touched (4.99826ms)
2026-10-18T12:09:22.3733728Z   ✔ a skill is its name only (0.316055ms)
2026-10-18T12:09:22.3733991Z   ✔ branches made, commits, claims and g1t's MCP tools are touched (0.437726ms)
2026-10-18T12:09:22.3734050Z   ✔ a hand-off's work item comes with the session (0.159649ms)
2026-10-18T12:09:22.3734063Z ✔ subagents (449.664009ms)
2026-10-18T12:09:22.3734075Z ▶ summaries
2026-10-18T12:09:22.3734125Z   ✔ say what a tool was called with, in one short line (4.436667ms)
2026-10-18T12:09:22.3734144Z   ✔ hide what looks like a secret (0.416194ms)
2026-10-18T12:09:22.3734201Z   ✔ hide credentials wherever text is sent, and leave references alone (0.583886ms)
2026-10-18T12:09:22.3734230Z   ✔ find the work item in a branch name (0.569735ms)
2026-10-18T12:09:22.3734244Z ✔ summaries (6.263848ms)
2026-10-18T12:09:22.3734255Z ▶ the plugin's files
2026-10-18T12:09:22.3734268Z   ✔ parse as JSON (0.764407ms)
2026-10-18T12:09:22.3734329Z   ✔ the AGENTS.md snippet is the one in the docs (0.438508ms)
2026-10-18T12:09:22.3734345Z ✔ the plugin's files (1.435224ms)
2026-10-18T12:09:22.3734356Z ▶ with a working copy
2026-10-18T12:09:22.3734404Z   ✔ SessionStart gives Claude the branch's work item's work context (67.438376ms)
2026-10-18T12:09:22.3734450Z   ✔ the background half starts the session once, then logs into it (274.500208ms)
2026-10-18T12:09:22.3734494Z   ✔ a shell command's writes are this session's; what was uncommitted before it is not (237.84494ms)
2026-10-18T12:09:22.3735598Z   ✔ the CLI never guesses touched files from the whole working copy (391.798626ms)
2026-10-18T12:09:22.3735698Z   ✔ background retrieval reaches the next tool without auto-acknowledging (293.057942ms)
2026-10-18T12:09:22.3735995Z   ✔ hooks after SessionStart record; SessionEnd forgets the session (378.009247ms)
2026-10-18T12:09:22.3736740Z   ✔ a push that reached the remote updates the head commit (300.770234ms)
2026-10-18T12:09:22.3736829Z   ✔ each subagent is a session of its own under this one, whatever order its hooks arrive in (545.279373ms)
2026-10-18T12:09:22.3736912Z   ✔ five subagents of one type started at once each get their own Agent call's task, whatever order they start in (683.433213ms)
2026-10-18T12:09:22.3736994Z   ✔ a pending task is never handed to two subagents, and an exact subagent never takes another's (285.559281ms)
2026-10-18T12:09:22.3737056Z   ✔ a subagent's files give its task even when its Agent call was not kept (14.140778ms)
2026-10-18T12:09:22.3737114Z   ✔ a session started with no g1t remote is recorded once a command adds one (258.794412ms)
2026-10-18T12:09:22.3737178Z   ✔ a session given a g1t remote between prompts is recorded at the next one (73.564318ms)
2026-10-18T12:09:22.3737239Z   ✔ only commands that may add a remote look for one (10.924712ms)
2026-10-18T12:09:22.3737296Z   ✔ a subagent whose stop arrives first is started, then ended (239.509647ms)
2026-10-18T12:09:22.3737353Z   ✔ an Agent call that finished ends its subagent with what it reported (281.271097ms)
2026-10-18T12:09:22.3737409Z   ✔ a hand-off names its work item at the start (290.154036ms)
2026-10-18T12:09:22.3737464Z   ✔ a missing CLI records nothing and says so once (35.315758ms)
2026-10-18T12:09:22.3737520Z   ✔ a signed-out CLI is said once, at the next prompt (198.154988ms)
2026-10-18T12:09:22.3737560Z   ✔ outside a g1t repository nothing happens (29.229607ms)
2026-10-18T12:09:25.2278882Z   ✔ the script answers SessionStart on stdin quickly, as JSON (537.898668ms)
2026-10-18T12:09:25.3713929Z   ✔ the script prints nothing for a prompt, and never fails on bad input (166.459671ms)
2026-10-18T12:09:25.3714056Z   ✔ a CLI older than the plugin needs records nothing and says so once, with how to update it (111.438966ms)
2026-10-18T12:09:25.3714118Z   ✔ a CLI that refuses a command (exit 2) is said once, as one to update (142.987372ms)
2026-10-18T12:09:25.3714179Z   ✔ the stand-in CLI refuses what the real one refuses (12.880696ms)
2026-10-18T12:09:25.3714271Z   ✔ a session's usage is reported from its own transcript, to a CLI that takes it, and only the counts (684.782647ms)
2026-10-18T12:09:25.3714330Z   ✔ PowerShell commands are read as Bash ones are, and a subagent's act as its session (285.672051ms)
2026-10-18T12:09:25.3714402Z   ✔ a skill typed as /plugin:name is recorded once in its turn, however Claude Code then runs it (396.976285ms)
2026-10-18T12:09:25.3714481Z   ✔ with no work item in sight, Claude is told the session is recorded and when to open or claim one (21.712618ms)
2026-10-18T12:09:25.3714555Z   ✔ Claude is never nudged to retitle, and no prompt sets a title (632.753442ms)
2026-10-18T12:09:25.3714612Z   ✔ Claude's own commands get the session's id once it has started (174.066865ms)
2026-10-18T12:09:25.3714672Z   ✔ on a Node older than 18 nothing is recorded, and that is said once (10.942719ms)
2026-10-18T12:09:25.3714688Z ✔ with a working copy (8071.639863ms)
2026-10-18T12:09:25.3714746Z ✔ pending updates survive delivery and stay isolated between parent and child (3.135144ms)
2026-10-18T12:09:25.3714807Z ✔ a CLI too old to acknowledge is told to update, once per set of updates (1.170466ms)
2026-10-18T12:09:25.3714866Z ✔ an acknowledgement refreshes the inbox at once, from the shell or MCP (0.435874ms)
2026-10-18T12:09:25.3714879Z ▶ a transcript's usage
2026-10-18T12:09:25.3714935Z   ✔ counts each response once, per model and tier (1.22635ms)
2026-10-18T12:09:25.3715766Z   ✔ reads on from where it stopped, a line written in half counted once it is whole (1.964448ms)
2026-10-18T12:09:25.3715812Z   ✔ a transcript that cannot be read gives nothing, and never throws (0.663165ms)
2026-10-18T12:09:25.3715821Z ✔ a transcript's usage (4.034434ms)
2026-10-18T12:09:25.3715828Z ℹ tests 61
2026-10-18T12:09:25.3715836Z ℹ suites 6
2026-10-18T12:09:25.3715844Z ℹ pass 61
2026-10-18T12:09:25.3715851Z ℹ fail 0
2026-10-18T12:09:25.3715858Z ℹ cancelled 0
2026-10-18T12:09:25.3715866Z ℹ skipped 0
2026-10-18T12:09:25.3715872Z ℹ todo 0
2026-10-18T12:09:25.3715881Z ℹ duration_ms 8662.900659
